package com.hightrast.service.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hightrast.service.api.domain.qo.rastProducts.QueryProductCountQo;
import com.hightrast.service.api.domain.qo.rastProducts.QueryRastProductsQo;
import com.hightrast.service.api.domain.qo.rastProducts.UpdateProductQo;
import com.hightrast.service.api.domain.vo.rastOrderItem.QueryCountChartData;
import com.hightrast.service.api.domain.vo.rastProduct.QueryRastProductsVo;
import com.hightrast.service.api.entity.RastProducts;

import java.util.List;

/**
 * <p>
 * 商品表 服务类
 * </p>
 *
 * @author hx
 * @since 2025-01-22
 */
public interface IRastProductsService extends IService<RastProducts> {

    /**
     * 查询商品列表 根据角色 以及当前用户绑定的品牌，如果管理者角色查询所有商品
     */
    IPage<QueryRastProductsVo> queryProducts(QueryRastProductsQo qo);

    /**
     * 修改商品成本、佣金比例
     */
    void updateProducts(UpdateProductQo qo);

    /**
     * 获取所有商品类型名称
     * @return
     */
    List<String> queryProductType();

    /**
     * 新增商品
     * @param rastProducts
     */
    void addProduct(List<RastProducts> rastProducts);

    /**
     * 商品销售数据统计及
     * @param qo
     * @return
     */
    QueryCountChartData queryProductCount(QueryProductCountQo qo);
}
